#pragma once

#include <SDL.h>
#include "Animation.h"

enum AnimSpeeds
{
    ANIM_VERY_SLOW = 500,
    ANIM_SLOW      = 250,
    ANIM_NORMAL    = 100,
    ANIM_FAST      = 75,
    ANIM_VERY_FAST = 50,
    ANIM_IM_ON_CRACK = 10
};

class AnimExecutor
{
    private:
        const Animation* currentAnimation;
        int CurrentFrame;
        int FrameRate; //Milliseconds
        int FrameInc;
        long OldTime;
        bool isAnimating;
        
    public:
        AnimExecutor();
        void OnAnimate();
        int GetCurrentFrame();
        int getAnimationCol();
        const std::string getAnimationName();
        bool getIsAnimating(){ return isAnimating; }
        void SetAnimation(const Animation& a, AnimSpeeds FrameRate = ANIM_NORMAL);
};